#ifndef _FV_KEY_H_
#define _FV_KEY_H_

struct fv_key {
    uint16_t ctrl_tilde;
    uint16_t ctrl_2;
    uint16_t ctrl_a;
    uint16_t ctrl_b;
    uint16_t ctrl_c;
    uint16_t ctrl_d;
    uint16_t ctrl_e;
    uint16_t ctrl_f;
    uint16_t ctrl_g;
    uint16_t backspace;
    uint16_t ctrl_h;
    uint16_t tab;
    uint16_t ctrl_i;
    uint16_t ctrl_j;
    uint16_t ctrl_k;
    uint16_t ctrl_l;
    uint16_t enter;
    uint16_t ctrl_m;
    uint16_t ctrl_n;
    uint16_t ctrl_o;
    uint16_t ctrl_p;
    uint16_t ctrl_q;
    uint16_t ctrl_r;
    uint16_t ctrl_s;
    uint16_t ctrl_t;
    uint16_t ctrl_u;
    uint16_t ctrl_v;
    uint16_t ctrl_w;
    uint16_t ctrl_x;
    uint16_t ctrl_y;
    uint16_t ctrl_z;
    uint16_t esc;
    uint16_t ctrl_lsq_bracket;
    uint16_t ctrl_3;
    uint16_t ctrl_4;
    uint16_t ctrl_backslash;
    uint16_t ctrl_5;
    uint16_t ctrl_rsq_bracket;
    uint16_t ctrl_6;
    uint16_t ctrl_7;
    uint16_t ctrl_slash;
    uint16_t ctrl_underscore;
    uint16_t space;
    uint16_t backspace2;
    uint16_t ctrl_8;

    // with terminal capabilities
    uint16_t f1;
    uint16_t f2;
    uint16_t f3;
    uint16_t f4;
    uint16_t f5;
    uint16_t f6;
    uint16_t f7;
    uint16_t f8;
    uint16_t f9;
    uint16_t f10;
    uint16_t f11;
    uint16_t f12;
    uint16_t ins;
    uint16_t del;
    uint16_t home;
    uint16_t end;
    uint16_t pgup;
    uint16_t pgdn;
    uint16_t arrow_up;
    uint16_t arrow_down;
    uint16_t arrow_left;
    uint16_t arrow_right;
    uint16_t back_tab;
    uint16_t mouse_left;
    uint16_t mouse_right;
    uint16_t mouse_middle;
    uint16_t mouse_release;
    uint16_t mouse_wheel_up;
    uint16_t mouse_wheel_down;
};
#endif
